/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sirius.usynapse.data;

import java.util.List;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

/**
 *
 * @author jildefonso
 */
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Arma {

    @PrimaryKey
    @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
    private long id = 0;
    @PrimaryKey
    private String nombre = null;
    @Persistent
    private int ataque = 0;
    @Persistent
    private float velocidadDisparo = 0;
    @Persistent
    private int repeticionDisparo = 0;
    @Persistent
    private boolean atraviezaEscudo = false;
    @Persistent
    private boolean inutiliza = false;
    @Persistent
    private boolean destruyeInutilizado = false;
    @Persistent
    private int nivel = 0;
    @Persistent
    private List<CantidadRecurso> costo = null;
    @Persistent
    private List<Mejora> mejoras = null;

    @Override
    public boolean equals(Object obj) {
        return obj instanceof Arma ? ((Arma) obj).getId() == getId() : false;
    }

    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the ataque
     */
    public int getAtaque() {
        return ataque;
    }

    /**
     * @param ataque the ataque to set
     */
    public void setAtaque(int ataque) {
        this.ataque = ataque;
    }

    /**
     * @return the velocidadDisparo
     */
    public float getVelocidadDisparo() {
        return velocidadDisparo;
    }

    /**
     * @param velocidadDisparo the velocidadDisparo to set
     */
    public void setVelocidadDisparo(float velocidadDisparo) {
        this.velocidadDisparo = velocidadDisparo;
    }

    /**
     * @return the repeticionDisparo
     */
    public int getRepeticionDisparo() {
        return repeticionDisparo;
    }

    /**
     * @param repeticionDisparo the repeticionDisparo to set
     */
    public void setRepeticionDisparo(int repeticionDisparo) {
        this.repeticionDisparo = repeticionDisparo;
    }

    /**
     * @return the atraviezaEscudo
     */
    public boolean isAtraviezaEscudo() {
        return atraviezaEscudo;
    }

    /**
     * @param atraviezaEscudo the atraviezaEscudo to set
     */
    public void setAtraviezaEscudo(boolean atraviezaEscudo) {
        this.atraviezaEscudo = atraviezaEscudo;
    }

    /**
     * @return the inutiliza
     */
    public boolean isInutiliza() {
        return inutiliza;
    }

    /**
     * @param inutiliza the inutiliza to set
     */
    public void setInutiliza(boolean inutiliza) {
        this.inutiliza = inutiliza;
    }

    /**
     * @return the destruyeInutilizado
     */
    public boolean isDestruyeInutilizado() {
        return destruyeInutilizado;
    }

    /**
     * @param destruyeInutilizado the destruyeInutilizado to set
     */
    public void setDestruyeInutilizado(boolean destruyeInutilizado) {
        this.destruyeInutilizado = destruyeInutilizado;
    }

    /**
     * @return the nivel
     */
    public int getNivel() {
        return nivel;
    }

    /**
     * @param nivel the nivel to set
     */
    public void setNivel(int nivel) {
        this.nivel = nivel;
    }

    /**
     * @return the costo
     */
    public List<CantidadRecurso> getCosto() {
        return costo;
    }

    /**
     * @param costo the costo to set
     */
    public void setCosto(List<CantidadRecurso> costo) {
        this.costo = costo;
    }

    /**
     * @return the mejoras
     */
    public List<Mejora> getMejoras() {
        return mejoras;
    }

    /**
     * @param mejoras the mejoras to set
     */
    public void setMejoras(List<Mejora> mejoras) {
        this.mejoras = mejoras;
    }

}